const cp = require('child_process')
const { join } = require('path')

const mongoose = require('mongoose')
const Movie = mongoose.model('Movie')

;(async () => {
  const script = join(__dirname, '../crawler/trailer_list.js')
  const child = cp.fork(script, [])
  let invoked = false

  child.on('error', err => {
    if (invoked) return

    invoked = true
    console.log(err)
  })

  child.on('exit', code => {
    if (invoked) return

    invoked = true
    let err = code === 0 ? null : new Error('exit code' + code)
    if (err) console.log(err)
  })

  child.on('message', data => {
    let result = data.result

    result.forEach(async item => {
      let movie = await Movie.findOne({
        doubanId: item.doubanId
      })

      if (movie) return  // 是否存在
        
      movie = new Movie(item)
      await movie.save()
    })
  })
})()